package com.liujiaqi.controller;

import com.liujiaqi.pojo.Result;
import com.liujiaqi.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
public class UploadController {

  @Autowired
  private AliOSSUtils aliOSSUtils;

  // 本地存储
/*  @PostMapping("/upload")
  public Result upload(String username, Integer age, MultipartFile image) throws Exception {
    log.info("文件上传，{}，{}，{}", username, age, image);

    // 获取原始的文件名
    String originalFilename = image.getOriginalFilename();

    // 构造唯一的文件名（不能重复）-- uuid（通用唯一标识）
    int index = originalFilename.lastIndexOf(".");
    String extname = originalFilename.substring(index);
    String newFileName = UUID.randomUUID().toString() + extname;
    log.info(newFileName);

    // 将文件存储再服务器的磁盘目录中
    image.transferTo(new File("D:\\java_study\\images\\" + newFileName));

    return Result.success();
  }*/

  @PostMapping("upload")
  public Result upload(MultipartFile image) throws IOException {
    log.info("文件上传，文件名字：{}", image.getOriginalFilename());

    // 调用阿里云OSS工具类进行文件上传
    String url = aliOSSUtils.upload(image);
    log.info("文件上传完成，文件访问的url为：{}", url);

    return Result.success(url);
  }
}
